package com.qudian.framework.dao.base;

import java.util.List;

public interface BaseDao<T extends BaseEntity> {
	
	/**
	 * @Description: 新增一个实体T
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:24:45
	 */
	int insert(T t);
	
	/**
	 * @Description: 批量新增实体T列表
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:27:06
	 */
	int batchInsert(List<T> list);
	
	/**
	 * @Description: 更新一个实体T，主键不可为空
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:24:56
	 */
	int update(T t);
	
	/**
	 * @Description: 根据主键删除一个实体T
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:25:09
	 */
	int delete(Integer id);
	
	/**
	 * @Description: 根据主键获取一个实体T
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:25:23
	 */
	T get(Integer id);
	
	/**
	 * @Description: 根据条件获取实体T
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:27:53
	 */
	T get(T t);
	
	/**
	 * @Description: 获取实体T列表
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:25:37
	 */
	List<T> queryList(T t);
	
	/**
	 * @Description: 分页查询实体T列表
	 * @author gaoxiang
	 * @date 2016年11月22日 下午6:26:03
	 */
	List<T> listPage(T t);
	
}
